package com.aspose.cells;

class zcfa {
   private zcfe a;
   private Workbook b;

   zcfa(zcfe var1, Workbook var2) {
      this.a = var1;
      this.b = var2;
   }

   Object a(zabd var1, Cell var2) {
      Object var3 = this.a.b((zabd)var1.d().get(0), var2);
      if (var3 == null) {
         var3 = 0.0D;
      } else {
         if (var3 instanceof zst) {
            return var3;
         }

         if (var3 instanceof DateTime) {
            var3 = CellsHelper.getDoubleFromDateTime((DateTime)var3, this.b.getSettings().getDate1904());
         }
      }

      int var4 = 1;
      if (var1.d().size() == 3) {
         Object var5 = zyn.e(this.a.b((zabd)var1.d().get(2), var2), this.b.getSettings().getDate1904());
         if (!(var5 instanceof Double)) {
            return var5;
         }

         var4 = com.aspose.cells.b.a.ze.f(var5);
         if (var4 < 0) {
            var4 = -1;
         } else if (var4 > 0) {
            var4 = 1;
         }
      }

      zabd var17 = (zabd)var1.d().get(1);
      boolean var6 = false;
      boolean var7 = false;
      boolean var8 = false;
      boolean var9 = false;
      Worksheet var10 = null;
      Object var11 = this.a.b((zabd)var1.d().get(1), var2);
      Object[][] var12 = (Object[][])null;
      int var18;
      int var19;
      int var20;
      int var21;
      if (var11 instanceof zft) {
         zft var13 = (zft)var11;
         var10 = this.b.getWorksheets().get(var13.b);
         var18 = var13.d.StartRow;
         var20 = var13.d.StartColumn;
         var21 = var13.d.EndColumn;
         var19 = var13.d.EndRow;
         int var14 = var10.getCells().getMaxRow();
         if (var14 == -1) {
            return zst.c;
         }

         if (var4 == 0 && var20 == var21) {
            var14 = this.a.a(var10.getIndex(), var20);
            if (var14 == -1) {
               return zst.c;
            }

            if (var14 < var18) {
               var14 = var18;
            }

            if (var19 > var14) {
               var19 = var14;
            }
         } else if (var19 > var14) {
            if (var18 == 0 && var19 == 1048575 && var4 != 0) {
               double var15 = Math.pow(2.0D, Math.ceil(com.aspose.cells.b.a.zq.a((double)var14, 2.0D)));
               var14 = (int)var15 - 1;
            }

            var19 = var14;
            if (var18 > var14) {
               var19 = var18;
            }
         }

         int var22 = var10.getIndex();
         var12 = (Object[][])((Object[][])this.a.a(var22, var18, var20, var19, var21, true, true, false).f);
      } else {
         if (!(var11 instanceof Object[][])) {
            var12 = new Object[][]{{var11}};
         } else {
            var12 = (Object[][])((Object[][])var11);
         }

         var18 = 0;
         var19 = var12.length - 1;
         var20 = 0;
         var21 = var12[0].length - 1;
      }

      return this.a(var3, var12, var18, var19, var20, var21, var4);
   }

   private Object a(Object var1, Object[][] var2, int var3, int var4, int var5, int var6, int var7) {
      if (var1 == null) {
         var1 = 0.0D;
      }

      if (var1 instanceof zst) {
         return var1;
      } else {
         boolean var8 = true;
         byte var9 = 0;
         byte var10 = 0;
         int var11 = var4 - var3;
         if (var3 == var4) {
            var8 = var6 == var5;
            if (!var8) {
               var9 = 0;
               var10 = 0;
               var11 = var6 - var5;
            }
         }

         Object var12 = zst.i;
         switch(zamo.a(var1.getClass())) {
         case 14:
            var12 = this.b((Double)var1, var2, var10, var11, var9, var8, var7);
            break;
         case 15:
         case 17:
         default:
            if (var1 instanceof Object[]) {
               Object[] var13 = (Object[])((Object[])var1);
               Object[][] var14 = new Object[var13.length][];

               for(int var15 = 0; var15 < var13.length; ++var15) {
                  Object[] var16 = (Object[])((Object[])com.aspose.cells.b.a.za.a(var13, var15));
                  if (var16 != null) {
                     var14[var15] = new Object[var16.length];

                     for(int var17 = 0; var17 < var16.length; ++var17) {
                        var1 = com.aspose.cells.b.a.za.a(var16, var17);
                        if (var1 != null) {
                           switch(zamo.a(var1.getClass())) {
                           case 14:
                              var12 = this.b((Double)var1, var2, var10, var11, var9, var8, var7);
                           case 15:
                           case 17:
                           default:
                              break;
                           case 16:
                              var12 = this.b(CellsHelper.getDoubleFromDateTime((DateTime)var1, this.b.getSettings().getDate1904()), var2, var10, var11, var9, var8, var7);
                              break;
                           case 18:
                              var12 = this.a((String)var1, var2, var10, var11, var9, var8, var7);
                           }

                           if (!(var12 instanceof Double)) {
                              return var12;
                           }

                           var14[var15][var17] = (Double)var12 + 1.0D;
                        }
                     }
                  }
               }

               return var14;
            }

            var12 = this.a(com.aspose.cells.b.a.zr.a(var1), var2, var10, var11, var9, var8, var7);
            break;
         case 16:
            var12 = this.b(CellsHelper.getDoubleFromDateTime((DateTime)var1, this.b.getSettings().getDate1904()), var2, var10, var11, var9, var8, var7);
            break;
         case 18:
            var12 = this.a((String)var1, var2, var10, var11, var9, var8, var7);
         }

         return var12 instanceof Double ? (Double)var12 + 1.0D : var12;
      }
   }

   private Object a(String var1, Object[][] var2, int var3, int var4, int var5, boolean var6, int var7) {
      int var8 = -1;
      String var9 = var1.toUpperCase();
      boolean var10;
      Object var11;
      int var13;
      int var14;
      int var15;
      String var16;
      switch(var7) {
      case -1:
         var10 = true;

         while(var3 <= var4) {
            var15 = (var3 + var4) / 2;
            var11 = null;
            if (var6) {
               if (var2[var15] != null && var2[var15][var5] != null) {
                  var11 = var2[var15][var5];
                  if (var11 instanceof Cell) {
                     var11 = this.a.a((Cell)var11);
                     var2[var15][var5] = var11;
                  }
               }
            } else if (var2[var5] != null && var2[var5][var15] != null) {
               var11 = var2[var5][var15];
               if (var11 instanceof Cell) {
                  var11 = this.a.a((Cell)var11);
                  var2[var5][var15] = var11;
               }
            }

            if (var11 == null) {
               Object var17 = this.a(var9, var2, var15 + 1, var4, var5, var6, var7);
               if (var17 instanceof zst) {
                  var17 = this.a(var9, var2, var3, var15 - 1, var5, var6, var7);
               }

               if (var17 instanceof zst && var8 != -1) {
                  return (double)var8;
               }

               return var17;
            }

            var16 = com.aspose.cells.b.a.zr.a(var11).toUpperCase();
            var13 = var9.compareTo(var16);
            if (var13 == 0) {
               var8 = var15;

               for(var14 = var15 + 1; var14 <= var4; ++var14) {
                  var11 = null;
                  if (var6) {
                     if (var2[var15] != null && var2[var15][var5] != null) {
                        var11 = var2[var15][var5];
                        if (var11 instanceof Cell) {
                           var11 = this.a.a((Cell)var11);
                           var2[var15][var5] = var11;
                        }
                     }
                  } else if (var2[var5] != null && var2[var5][var15] != null) {
                     var11 = var2[var5][var15];
                     if (var11 instanceof Cell) {
                        var11 = this.a.a((Cell)var11);
                        var2[var5][var15] = var11;
                     }
                  }

                  if (var11 != null) {
                     var16 = com.aspose.cells.b.a.zr.a(var11).toUpperCase();
                     if (!com.aspose.cells.b.a.zv.b(var16, var9)) {
                        return (double)var8;
                     }

                     var8 = var14;
                  }
               }

               return (double)var8;
            }

            if (var13 < 0) {
               var8 = var15;
               var3 = var15 + 1;
            } else {
               var4 = var15 - 1;
            }
         }

         if (var8 != -1) {
            return (double)var8;
         }

         return zst.c;
      case 0:
         for(var15 = var3; var15 <= var4; ++var15) {
            var11 = null;
            if (var6) {
               if (var2[var15] != null && var2[var15][var5] != null) {
                  var11 = var2[var15][var5];
                  if (var11 instanceof Cell) {
                     var11 = this.a.a((Cell)var11);
                     var2[var15][var5] = var11;
                  }
               }
            } else if (var2[var5] != null && var2[var5][var15] != null) {
               var11 = var2[var5][var15];
               if (var11 instanceof Cell) {
                  var11 = this.a.a((Cell)var11);
                  var2[var5][var15] = var11;
               }
            }

            if (var11 != null) {
               var16 = com.aspose.cells.b.a.zr.a(var11);
               var13 = zbpt.a(var1, var16, true);
               if (var13 == 0) {
                  return (double)var15;
               }
            }
         }

         return zst.c;
      case 1:
         var10 = true;

         while(var3 <= var4) {
            var15 = (var3 + var4) / 2;
            var11 = this.a(var2, var15, var5, var6, false);
            if (var11 == null) {
               for(int var12 = var15 + 1; var12 <= var4; ++var12) {
                  var11 = this.a(var2, var12, var5, var6, false);
                  if (var11 != null) {
                     var15 = var12;
                     break;
                  }
               }

               if (var11 == null) {
                  var4 = var15 - 1;
                  continue;
               }
            }

            if (var11 == null) {
               break;
            }

            var16 = com.aspose.cells.b.a.zr.a(var11).toUpperCase();
            var13 = var9.compareTo(var16);
            if (var13 == 0) {
               var8 = var15;

               for(var14 = var15 + 1; var14 <= var4; ++var14) {
                  var11 = this.a(var2, var14, var5, var6, false);
                  if (var11 != null) {
                     var16 = com.aspose.cells.b.a.zr.a(var11).toUpperCase();
                     if (!com.aspose.cells.b.a.zv.b(var16, var9)) {
                        return (double)var8;
                     }

                     var8 = var14;
                  }
               }

               return (double)var8;
            }

            if (var13 > 0) {
               var8 = var15;
               var3 = var15 + 1;
            } else {
               var4 = var15 - 1;
            }
         }

         return var8 != -1 ? (double)var8 : zst.c;
      default:
         return zst.c;
      }
   }

   private Object a(Object[][] var1, int var2, int var3, boolean var4, boolean var5) {
      Object var6 = null;
      if (var4) {
         if (var1[var2] != null && var1[var2][var3] != null) {
            var6 = var1[var2][var3];
            if (var6 instanceof Cell) {
               var6 = this.a.a((Cell)var6);
               var1[var2][var3] = var6;
            }
         }
      } else if (var1[var3] != null && var1[var3][var2] != null) {
         var6 = var1[var3][var2];
         if (var6 instanceof Cell) {
            var6 = this.a.a((Cell)var6);
            var1[var3][var2] = var6;
         }
      }

      if (var5) {
         if (var6 instanceof DateTime) {
            var6 = CellsHelper.getDoubleFromDateTime((DateTime)var6, this.b.getSettings().getDate1904());
         }

         if (!(var6 instanceof Double)) {
            return null;
         }
      }

      return var6;
   }

   private Object a(double var1, Object[][] var3, int var4, int var5, int var6, boolean var7, int var8) {
      int var9 = -1;
      boolean var10 = true;

      while(var4 <= var5) {
         int var15 = (var4 + var5) / 2;
         Object var11 = this.a(var3, var15, var6, var7, true);
         if (var11 == null) {
            for(int var12 = var15 + 1; var12 <= var5; ++var12) {
               var11 = this.a(var3, var12, var6, var7, true);
               if (var11 != null) {
                  var15 = var12;
                  break;
               }
            }

            if (var11 == null) {
               var5 = var15 - 1;
               continue;
            }
         }

         if (var11 == null) {
            break;
         }

         double var16 = (Double)var11;
         if (Math.abs(var1 - var16) < Double.MIN_VALUE) {
            var9 = var15;
            int var14 = var15;

            while(true) {
               if (var8 == 1) {
                  ++var14;
                  if (var14 > var5) {
                     break;
                  }
               } else {
                  --var14;
                  if (var14 < var4) {
                     break;
                  }
               }

               var11 = this.a(var3, var14, var6, var7, true);
               if (var11 != null) {
                  var16 = (Double)var11;
                  if (Math.abs(var1 - var16) >= Double.MIN_VALUE) {
                     return (double)var9;
                  }

                  var9 = var14;
               }
            }

            return (double)var9;
         }

         switch(var8) {
         case -1:
            if (var1 > var16) {
               var5 = var15 - 1;
            } else {
               var9 = var15;
               var4 = var15 + 1;
            }
            break;
         case 1:
            if (var1 > var16) {
               var9 = var15;
               var4 = var15 + 1;
            } else {
               var5 = var15 - 1;
            }
         }
      }

      if (var8 != 0) {
         return var9 != -1 ? (double)var9 : zst.c;
      } else {
         return zst.c;
      }
   }

   private Object b(double var1, Object[][] var3, int var4, int var5, int var6, boolean var7, int var8) {
      if (var8 != 0) {
         return this.a(var1, var3, var4, var5, var6, var7, var8);
      } else {
         for(int var9 = var4; var9 <= var5; ++var9) {
            Object var10 = this.a(var3, var9, var6, var7, true);
            if (var10 != null) {
               double var11 = (Double)var10;
               if (Math.abs(var1 - var11) < Double.MIN_VALUE) {
                  return (double)var9;
               }
            }
         }

         return zst.c;
      }
   }
}
